According to conventional business software terminology, a business object is an object model representing real-world items used during the transaction of business. For example, a business object may represent a business document such as a sales order, a purchase order, or an invoice. A business object may also represent items such as a product, a business partner, or a piece of equipment. Particular documents (e.g., SalesOrder SO435539) and/or items (e.g., ACME corporation) are represented by instances of their representing business object, or business object instances.
A business process platform, such as the Application Platform provided by SAP of Walldorf, Germany, provides application programming interfaces for read and write access to business object instances. Notably, each specific business object (i.e., object model) conforms to a same metadata model (or, “metamodel”). As a result, a business process platform may employ similar application programming interfaces, services, and persistencies to support all instances of each specific business object.
As described in commonly-assigned, co-pending U.S. application Ser. No. 12/339,339, a business process platform may include other metamodels describing technical entities such as, but not limited to, a Web Service, a view, a floorplan (i.e., a user interface layout), a work center, UI texts, and process components. Each metamodel, including the business object metamodel, may in turn conform to a same meta-metamodel. More specifically, each metamodel may comprise an instance of a same meta-metadata model.
Some application development tools (e.g., Eclipse-based tools) operate based on specific metamodels (e.g., Eclipse Modeling Framework (EMF) models). These metamodels are also instances of a specific meta-metamodel (e.g., eCore). As such, these tools are unable to utilize metamodels which conform to different meta-metamodels. In some cases, the native meta-metamodel (e.g., eCore) of a development tool exposes the same modeling unit types as another meta-metamodel (e.g., UML). Accordingly, desired metamodels of the other meta-metamodel may be directly mapped to metamodels of the native meta-metamodel for use by the development tool.
The foregoing approach is unsuitable in a case that the meta-metamodel of the desired metamodels does not expose the same modeling unit types as the native meta-metamodel of a development tool.